Generally described, computing devices and communication networks can be utilized to exchange information. In a common application, a computing device can request content from another computing device via a communication network. For example, a user at a personal computing device can utilize a browser application to request a Web page from a server computing device via the Internet. In such embodiments, the user computing device can be referred to as a client computing device and the server computing device can be referred to as a content provider.
Content providers are generally motivated to provide requested content to client computing devices often with consideration of efficient transmission of the requested content to the client computing device and/or consideration of a cost associated with the transmission of the content. For larger scale implementations, a content provider may receive content requests from a high volume of client computing devices which can place a strain on the content provider's computing resources. Additionally, the content requested by the client computing devices may have a number of components, which can require further consideration of latencies associated with delivery of the individual components as well as the originally requested content as a whole.
With reference to an illustrative example, a requested Web page, or original content, may be associated with a number of additional resources, such as images or videos, that are to be displayed with the Web page. In one specific embodiment, the additional resources of the Web page are identified by a number of embedded resource identifiers, such as uniform resource locators (“URLs”). In turn, software on the client computing devices, such as a browser application, typically processes embedded resource identifiers to generate requests for the content. Often the resource identifiers associated with the embedded resource reference a computing device associated with the content provider such that the client computing device would transmit the request for the additional resources to the referenced content provider computing devices. Accordingly, in order to satisfy a content request, the content provider(s) (or any service provider on behalf of the content provider(s)) would provide client computing devices data associated with the Web page and/or the data associated with the embedded resources.
Some content providers attempt to facilitate the delivery of requested content, such as Web pages and/or resources identified in Web pages, through the utilization and distribution of content at a number of geographically diverse data centers. Data centers typically maintain a number of computing devices for maintaining content in a variety of geographically remote locations. By distributing content among more than one data center, either by storing content at a particularly designated location or by storing content at multiple locations, content providers seek to efficiently transmit requested content to client computing devices, which are also typically located in a variety of geographic locations.
Alternatively or additionally, some content providers attempt to facilitate the delivery of requested content through the utilization of a content delivery network (“CDN”) service provider. A CDN service provider typically maintains a number of computing devices in a communication network that can maintain content from various content providers. In turn, content providers can instruct, or otherwise suggest to, client computing devices to request some, or all, of the content provider's content from the CDN service provider's computing devices.
As with content providers, CDN service providers are also generally motivated to provide requested content to client computing devices often with consideration of efficient transmission of the requested content to the client computing device and/or consideration of a cost associated with the transmission of the content. Accordingly, CDN service providers often consider factors such as latency of delivery of requested content in order to meet service level agreements or to generally improve the quality of delivery service.
Traditionally, a number of methodologies exist which measure the performance associated with the exchange of data in any of the environments described above. For example, some methodologies provide for limited measurement of performance metrics associated with network side processing of a content request. Other methodologies allow for limited measurement of performance metrics associated with a content request as measured from a browser application's perspective.